export default {
    // 全局属性  （localStorage中）
    state: {
        // 菜单数据
        menuList: [],
        // 权限数据
        permList: [],
        // 控制路由是否加载标识
        hasRoute: false,

        // 选项卡-选中的标签名称
        editableTabsValue: 'Main',
        // 选项卡-主体标签内容
        editableTabs: [
            //
            // {
            //     title: '首页',
            //     name: 'Main'
            // }
        ]
    },
    //全局方法
    mutations: {
        /**
         * 更新路由状态
         * @param {*} state 
         * @param {*} hasRoute 
         */
        changeRouteStatus(state, hasRoute) {
            state.hasRoute = hasRoute
            sessionStorage.setItem("hasRoute", hasRoute)
        },
        /**
         * 设置菜单数据
         * @param {*} state 
         * @param {*} menus 
         */
        setMenuList(state, menus) {
            state.menuList = menus
        },
        /**
         * 设置权限数据
         * @param {*} state 
         * @param {*} authoritys 
         */
        setPermList(state, authoritys) {
            state.permList = authoritys
        },

        /**
         * 选项卡 新增
         * @param {*} state 
         * @param {*} tab 
         */
        addTab(state, tab) {
            // 通过判断当前editableTabs是否包含对应tab实现是否新增标签
            let index = state.editableTabs.findIndex(e => e.name === tab.name)
            if (index === -1) {
                state.editableTabs.push({
                    title: tab.title,
                    name: tab.name
                });
            }
            //指定当前被激活的选项卡
            state.editableTabsValue = tab.name;
        },
        /**
         * 初始化菜单相关
         * @param {*} state 
         */
        resetState: (state) => {
            state.menuList = []
            state.permList = []
            state.hasRoute = false
            state.editableTabsValue = 'Main'
            state.editableTabs = [
                //
                // {
                //     title: '首页',
                //     name: 'Main',
                // }
            ]
        }

    },
    actions: {},
    modules: {}
}